/**
 * @Author: Your name
 * @Date:   2024-03-14 18:50:09
 * @Last Modified by:   Your name
 * @Last Modified time: 2024-03-15 11:15:19
 */
const mysql = require('mysql');
const { promisify } = require('util');
const moduleDB = require('../../db/db'); // 假设这是你的数据库配置模块

// 创建连接
const conn = mysql.createConnection(moduleDB.mysql);
const query = promisify(conn.query).bind(conn); // 转换query方法为返回Promise的方法

export default async (req, res) => {
  if (req.method !== 'POST') {
    res.setHeader('Allow', 'POST');
    res.status(405).end('Method Not Allowed');
    return;
  }

  try {
    // 解析请求体中的JSON数据
    //记录下引起这个报错的原因：

    //JSON.parse（）参数应该是string类型

    //由于传递的参数是object 类型 那么JSON.parse() 就会把object类型默认转成string 结果为“[object object]”

    //与JSON.parse() 相对应的 就是 JSON.stringify() 把object 转为 string；

    //因为之前存入缓存时没有将对象转成字符串（JSON.stringify()），所以导致代码修改了，但是缓存还没有变，导致JSON.parse()转换时转的是字符串的Object。
    // const { id, name } = JSON.parse(req.body);
    const { id, name } = req.body;
    console.log(id, name);
    // 构建SQL插入语句
    const sql = 'INSERT INTO demo01 (id, name) VALUES (?, ?)';

    // 执行SQL查询
    const results = await query(sql, [id, name]);

    // 假设插入成功，返回成功消息
    res
      .status(201)
      .json({ id: results.insertId, message: 'Record added successfully' });
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: 'An error occurred' });
  }
};
